// src/main.js
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import axios from 'axios';


Vue.config.productionTip = false;

// 挂载 axios 到全局
Vue.prototype.$axios = axios;

// 使用 Element UI
Vue.use(ElementUI);

// 设置 axios 基础地址
axios.defaults.baseURL = 'http://localhost:8080';

// 请求拦截器：自动携带 JWT token
axios.interceptors.request.use(config => {
  // 清除之前可能存在的Authorization头
  delete config.headers['Authorization'];
  
  // 获取当前路由
  const currentRoute = router.currentRoute;
  const path = currentRoute.path || '';
  
  // 优先检查是否有hr_token和hr相关页面
  const hrToken = localStorage.getItem('hr_token');
  const userToken = localStorage.getItem('user_token');
  
  // 如果在HR页面或者请求路径是/user/list，使用hr_token
  if ((path.includes('/hr_') || path.includes('/HR_') || config.url === '/user/list') && hrToken) {
    // HR相关页面或用户查询接口使用hr_token
    config.headers['Authorization'] = 'Bearer ' + hrToken;
  } 
  // 如果在用户页面，使用user_token
  else if ((path.includes('/user_') || path.includes('/User_')) && userToken) {
    // 用户相关页面使用user_token
    config.headers['Authorization'] = 'Bearer ' + userToken;
  }
  // 检查路由meta中的role配置
  else if (currentRoute.meta && currentRoute.meta.role === 'hr' && hrToken) {
    config.headers['Authorization'] = 'Bearer ' + hrToken;
  }
  else if (currentRoute.meta && currentRoute.meta.role === 'user' && userToken) {
    config.headers['Authorization'] = 'Bearer ' + userToken;
  }
  // 如果没有明确的角色要求，但有token，优先使用存在的token
  else if (hrToken) {
    config.headers['Authorization'] = 'Bearer ' + hrToken;
  }
  else if (userToken) {
    config.headers['Authorization'] = 'Bearer ' + userToken;
  }
  
  return config;
});

new Vue({
  router,

  render: h => h(App)
}).$mount('#app');